package com.bestcem.xm.user.util.convert;

import com.bestcem.xm.user.controller.vo.role.*;
import com.bestcem.xm.user.entity.mysql.Role;
import com.bestcem.xm.user.entity.pojo.GetAccountRoleDO;
import com.bestcem.xm.user.entity.pojo.UserRoleDO;
import com.bestcem.xm.user.service.dto.role.GetAccountRoleDTO;
import com.bestcem.xm.user.service.dto.role.RoleListDTO;
import com.bestcem.xm.user.service.dto.role.UpdateRoleDTO;
import com.bestcem.xm.user.service.dto.role.UserRoleDTO;
import org.mapstruct.Mapper;

import java.util.List;

/**
 * 角色转换类
 *
 * @author Linked <zhijian.lin@idiaoyan.com>
 * @version v1.0
 * @date 2022/3/15 19:01
 */
@Mapper(componentModel = "spring")
public interface UserRoleConvert {

    List<RoleListDTO> dolist2Dtolist(List<UserRoleDO> roleList);

    List<RoleListVO> dtolist2Volist(List<RoleListDTO> roleListDTOS);

    UserRoleDO dtoToDo(UserRoleDTO saveRoleDTO);

    Role do2Entity(UserRoleDO roleDO);

    UserRoleDTO saveRoleVO2DTO(SaveRoleVO saveRoleVO);

    UpdateRoleDTO updateRoleVO2UpdateDTO(UpdateRoleVO updateSaveVO);

    List<UserRoleDTO> dos2Dtos(List<UserRoleDO> selectRoleByCondition);

    List<GetRoleAccountVO> roleAccountDTOList2VO(List<UserRoleDTO> data);

    List<GetAccountRoleDTO> getAccountRoleDO2DTO(List<GetAccountRoleDO> userList);

    List<GetAccountRoleVO> getAccountRoleDTO2VO(List<GetAccountRoleDTO> data);

}
